package vek.ObjectDatabase;

import java.util.ArrayList;
import vek.Objects.POI;

/**
 * Interface for databases which contain POIs
 * @author Christian, Michal og Jakob (Hold 1, gruppe 2)
 */
public interface POIDatabase {    
    
    // General
    
    public ArrayList<POI> searchFor(Search se); // searches for a type of POI using the Search object and returns an ArrayList of POIs
    
    public void addPOI(POI poiObj); // adds a POI object to the database          
    
    public ArrayList<POI> getAll(); // gets all the POIs in this database
    
    public ArrayList<String> getAllTypes(); // gets all the types of POI in this database, the type can be "Restaurant", "Museum" etc.
    
    public boolean isAvailable(); // checks if the database is available and ready to be used
    
    public boolean isOnline(); // checks if the database is an online or an offline database, that is if the database is local or uses the Internet
    
    public DatabaseConnector.DatabaseType getType(); // gets the type of database
    
    public int getPriority(); // gets the priority of this database, higher priority databases will be used first     

}
